/*
 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladores;

import Conceptos.Parametro;
import MPersistencia.MPParametro;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

/**
 *
 * @author dell
 */
@ManagedBean(name = "controlParametros")
@RequestScoped
public class controlParametros implements Serializable {
    private SelectItem[] menuTipo;
    private static String tipo;
    private static String descripcion;
    private static String codigo;
    private boolean mostPanel;
    private static List<Parametro> listaparametros;

    /** Creates a new instance of controlParametros */

        public controlParametros() {
        try {
            setListaparametros(MPParametro.listarParametros());
            
        } catch (SQLException ex) {
            Logger.getLogger(controlParametros.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(controlParametros.class.getName()).log(Level.SEVERE, null, ex);
        }

    }


    public void mostrarPanel() throws SQLException, Exception {
        setListaparametros(MPParametro.listarParametrostiposinsitu("in Situ"));
        setMostPanel(true);

    }

    public void mostrar() throws SQLException, Exception {
        setListaparametros(MPParametro.listarParametrostiposinsitu(tipo));



    }

    public void RegistrarParametro() throws SQLException, Exception {
        if (MPParametro.getParametrotipocodgo(codigo, tipo) != null) {
            Parametro p = MPParametro.getParametrotipocodgo(codigo, tipo);
            p.setDescripcion(descripcion);
            MPParametro.updateParametrocodigotipo(p, codigo, tipo);
        } else {
            Parametro p = new Parametro();
            p.setCodigo(codigo);
            p.setDescripcion(descripcion);
            p.setTipo(tipo);

            MPParametro.crearParametro(p);
        }
        setListaparametros(MPParametro.listarParametros());
    }

    public static void cerrarSession() {
        tipo = null;
        descripcion = null;
        codigo = null;
        listaparametros = null;
    }

    public void ocultarPanel() {
        setMostPanel(false);

    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public List<Parametro> getListaparametros() {
        return listaparametros;
    }

    public List getListaparametroscombo() {
        List resultList = new ArrayList();
        for (Iterator<Parametro> it = listaparametros.iterator(); it.hasNext();) {
            Parametro listParametro = (Parametro) it.next();
            SelectItem item = new SelectItem(listParametro.getDescripcion());;

            resultList.add(item);

        }
        return resultList;
    }

    public void setListaparametros(List<Parametro> listaparametros) {
        this.listaparametros = listaparametros;
    }

    public void listaparametrosins(ValueChangeEvent event) throws SQLException, Exception {
        if (event.getNewValue() != null) {
            try {
                //setCodRes();
                setListaparametros(MPParametro.listarParametrostiposinsitu(event.getNewValue().toString()));
                //  System.out.println(getCategoria().getNombre());
            } catch (SQLException ex) {
                ex.printStackTrace();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

    }

    public boolean isMostPanel() {
        return mostPanel;
    }

    public void setMostPanel(boolean mostPanel) {
        this.mostPanel = mostPanel;
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }
}